<?php

class Tarefa_IndexController extends App_Controller_Action
{
    public function indexAction()
    {
        $this->_carregarTarefas();
        $this->_carregarProjetos();
        $this->_carregarServicos();
        $this->_carregarUsuarios();
        $this->_carregarHistoricos();
    }

    private function _carregarProjetos()
    {
        $idUsuario = Zend_Auth::getInstance()->getIdentity()->id_usuario;
        $projeto = new Model_Projeto();
        $rowSet = $projeto->getAgrupados($idUsuario);
        $aProjetos = array();
        foreach ($rowSet as $key => $rowSetProjetos) {
            foreach ($rowSetProjetos as $count => $rowProjeto) {
                $tarefa = new Model_Tarefa();
                $rowSet[$key][$count]->qtTarefas = $tarefa->fetchAll(array('fk_projeto = ' . $rowProjeto->id_projeto, "cs_situacao != 'F'"))->count();
                $aProjetos[$rowProjeto->id_projeto] =  $rowProjeto->st_nome;
            }
        }

        $this->view->rowSetProjeto = $rowSet;
        $this->view->aProjetos = $aProjetos;
    }

    private function _carregarServicos()
    {
        $tipoServico = new Model_TipoServico();
        $rowSetTipoServicos = $tipoServico->fetchAll();

        $aServicos = array();
        $aClientes = array();
        foreach ($rowSetTipoServicos as $rowTipoServico) {
            $oServico = (object) $rowTipoServico->toArray();
            $oServico->qtServicos  = $rowTipoServico->findModel_Servico()->count();
            $aServicos[] = $oServico;
        }
        $this->view->aServicos = $aServicos;
    }

    private function _carregarTarefas()
    {
        $st_pesquisa = $this->_getParam('st_pesquisa');
        /*
        $filtro['t.cs_situacao <> ?'] = Model_Tarefa::SITUACAO_FINALIZADA;
        $filtro['t.fk_usuario = ?']   = Zend_Auth::getInstance()->getIdentity()->id_usuario;
        $this->view->rowSetTarefas = $tarefa->getTarefasAgrupadas($filtro);
        */
        $filtro = array();

        $idUsuarioLogado = Zend_Auth::getInstance()->getIdentity()->id_usuario;

        $tarefa = new Model_Tarefa();
        if ($st_pesquisa) {
            $filtro['(st_nome like ? OR st_descricao like ?)'] = '%' . $st_pesquisa . '%';
        } else {
            $filtro['cs_situacao <> ?'] = Model_Tarefa::SITUACAO_FINALIZADA;
            $filtro['fk_usuario = ?']   = $idUsuarioLogado;
        }

        $rowSetTarefas = $tarefa->fetchAll($filtro, 'nr_fila_usuario');

        $this->view->rowSetTarefas = $rowSetTarefas;
        $this->view->rowSetTarefasResponsabilidade = $tarefa->fetchAll(array('fk_usuario_responsavel = ?' => $idUsuarioLogado), 'nr_fila_usuario');;
        $this->view->st_pesquisa = $st_pesquisa;

        // Tarefa atual
        $fkTarefaAtual = Model_Usuario::getTaretaAtual();
        if ($fkTarefaAtual) {
            $rowTarefaAtual = $tarefa->find($fkTarefaAtual)->current();
            $this->view->rowTarefaAtual = $rowTarefaAtual;
        }
        /*
        $this->view->rowSetTarefasAbertas = $tarefa->fetchAll($filtro);
        */
    }

    private function _carregarHistoricos()
    {
        $idUsuario = Zend_Auth::getInstance()->getIdentity()->id_usuario;
        $historico = new Model_Historico();
        $this->view->rowSetHistoricos = $historico->getResumo($idUsuario);
    }
}
